package com.sykj.cloud.system.api.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sykj.cloud.common.core.annotation.Excel;
import com.sykj.cloud.common.core.web.domain.BaseEntity;

/**
 * 组织部门对象 org_dept
 *
 * @author mr.will
 * @date 2021-03-15
 */
public class OrgDept extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 部门ID */
    private String guid;

    /** 应用ID */
    @Excel(name = "应用ID")

    private String applicationId;

    /** 组织机构ID */
    @Excel(name = "组织机构ID")

    private String organizationId;

    /** 名称 */
    @Excel(name = "名称")

    private String name;

    /** 简称 */
    @Excel(name = "简称")

    private String shortName;

    /** 编码 */
    @Excel(name = "编码")

    private String code;

    /** 上级部门 */
    @Excel(name = "上级部门")

    private String parentId;

    /** 祖级列表 */
    private String ancestors;

    /** 上级岗位 */
    @Excel(name = "上级岗位")

    private String parentJobId;

    /** 上级员工ID */
    @Excel(name = "上级员工ID")

    private String parentEmployeeId;

    /** 排序 */
    @Excel(name = "排序")

    private Long orderSeq;

    /** 描述 */
    @Excel(name = "描述")

    private String description;

    /** 负责岗位 */
    @Excel(name = "负责岗位")

    private String headJobId;

    /** 负责员工ID */
    @Excel(name = "负责员工ID")

    private String headEmployeeId;

    /** 秘书岗位 */
    @Excel(name = "秘书岗位")

    private String secretaryJobId;

    /** 秘书员工ID */
    @Excel(name = "秘书员工ID")

    private String secretaryEmployeeId;

    /** 列表图 */
    @Excel(name = "列表图")

    private String listImage;

    /** 押题图 */
    @Excel(name = "押题图")

    private String faceImage;

    /** 是否有效 */
    @Excel(name = "是否有效")
    private Integer valid;

    /** 是否锁定 */
    @Excel(name = "是否锁定")

    private Integer lock;

    /** 删除人 */
    @Excel(name = "删除人")

    private String deleteBy;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deleteTime;

    /** 是否删除 */
    @Excel(name = "是否删除")

    private Integer deleted;

    /** 子部门 */
    private List<OrgDept> children = new ArrayList<OrgDept>();

    public String getGuid() {
        return guid;
    }

    public void setGuid(String guid) {
        this.guid = guid;
    }

    public String getApplicationId() {
        return applicationId;
    }

    public void setApplicationId(String applicationId) {
        this.applicationId = applicationId;
    }

    public String getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getShortName() {
        return shortName;
    }

    public void setShortName(String shortName) {
        this.shortName = shortName;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getAncestors() {
        return ancestors;
    }

    public void setAncestors(String ancestors) {
        this.ancestors = ancestors;
    }

    public String getParentJobId() {
        return parentJobId;
    }

    public void setParentJobId(String parentJobId) {
        this.parentJobId = parentJobId;
    }

    public String getParentEmployeeId() {
        return parentEmployeeId;
    }

    public void setParentEmployeeId(String parentEmployeeId) {
        this.parentEmployeeId = parentEmployeeId;
    }

    public Long getOrderSeq() {
        return orderSeq;
    }

    public void setOrderSeq(Long orderSeq) {
        this.orderSeq = orderSeq;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getHeadJobId() {
        return headJobId;
    }

    public void setHeadJobId(String headJobId) {
        this.headJobId = headJobId;
    }

    public String getHeadEmployeeId() {
        return headEmployeeId;
    }

    public void setHeadEmployeeId(String headEmployeeId) {
        this.headEmployeeId = headEmployeeId;
    }

    public String getSecretaryJobId() {
        return secretaryJobId;
    }

    public void setSecretaryJobId(String secretaryJobId) {
        this.secretaryJobId = secretaryJobId;
    }

    public String getSecretaryEmployeeId() {
        return secretaryEmployeeId;
    }

    public void setSecretaryEmployeeId(String secretaryEmployeeId) {
        this.secretaryEmployeeId = secretaryEmployeeId;
    }

    public String getListImage() {
        return listImage;
    }

    public void setListImage(String listImage) {
        this.listImage = listImage;
    }

    public String getFaceImage() {
        return faceImage;
    }

    public void setFaceImage(String faceImage) {
        this.faceImage = faceImage;
    }

    public Integer getValid() {
        return valid;
    }

    public void setValid(Integer valid) {
        this.valid = valid;
    }

    public Integer getLock() {
        return lock;
    }

    public void setLock(Integer lock) {
        this.lock = lock;
    }

    public String getDeleteBy() {
        return deleteBy;
    }

    public void setDeleteBy(String deleteBy) {
        this.deleteBy = deleteBy;
    }

    public Date getDeleteTime() {
        return deleteTime;
    }

    public void setDeleteTime(Date deleteTime) {
        this.deleteTime = deleteTime;
    }

    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    public List<OrgDept> getChildren() {
        return children;
    }

    public void setChildren(List<OrgDept> children) {
        this.children = children;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("guid", getGuid())
            .append("applicationId", getApplicationId())
            .append("organizationId", getOrganizationId())
            .append("name", getName())
            .append("shortName", getShortName())
            .append("code", getCode())
            .append("parentId", getParentId())
            .append("parentJobId", getParentJobId())
            .append("parentEmployeeId", getParentEmployeeId())
            .append("orderSeq", getOrderSeq())
            .append("description", getDescription())
            .append("headJobId", getHeadJobId())
            .append("headEmployeeId", getHeadEmployeeId())
            .append("secretaryJobId", getSecretaryJobId())
            .append("secretaryEmployeeId", getSecretaryEmployeeId())
            .append("listImage", getListImage())
            .append("faceImage", getFaceImage())
            .append("valid", getValid())
            .append("lock", getLock())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("deleteBy", getDeleteBy())
            .append("deleteTime", getDeleteTime())
            .append("deleted", getDeleted())
            .append("ancestors", getAncestors())
            .toString();
    }
}
